iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

搭配服用文檔:Laravel-Asset Bundling (Vite)
Starter Kits: Breeze & Blade

前端環境設定快速開箱:Breeze

昨天用Laravel blade簡單做了一個畫面,今天來看看我們的CSS該怎麼加入Blade呢?

話說話說,忘了我們要安裝Breeze了,Breeze是Laravel一個快速前端模板,
裡面有用戶登入認證機制等等,更重要的是,已經幫我們裝好Tailwind, postcss等的設定啦!

那就起手式先來進入docker安裝Breeze, 並下載我們的前端套件:

laradock % docker-compose up -d workspace php-fpm nginx mysql redis
laradock % docker-compose exec --user=laradock workspace bash
/var/www# cd rachel-projects/career-expo
/var/www#composer require laravel/breeze --dev
/var/www#npm install

這邊前端的設定包括Tailwind就不多做介紹了。
但來看看我們要怎麼把CSS和JS等靜態資源引入到Blade呢?

這就來看看Laravel搭配的打包工具:Vite!

Vite簡單說明

Vite也是vue 的作者尤大大開發的工具,可以幫我們打包CSS,JS資源。
前端還是菜菜的,就不去探討原理了。

Laravel已經幫我們配置好Vite了
package.json

{
    "private": true,
    "type": "module",
    "scripts": {
        "dev": "vite",
        "build": "vite build"
    },
    "devDependencies": {
        "axios": "^1.1.2",
        "laravel-vite-plugin": "^0.8.0",
        "vite": "^4.0.0"
    }
}

譬如說我們在layout裡面把vite的CSS資源放進來
只要加入Vite的命令式就好:@vite('resources/css/app.css')

base.layout.blade.php

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Online Careers Expo - @section('title')</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Ubuntu&display=swap" rel="stylesheet">
    @vite('resources/css/app.css')

    <style>
        @yield('css-section')
    </style>
</head>

引用圖片時

使用圖片時,我們可以採用
1.絕對路徑:<img src="/taylor.png"> 但因為vite不會處理絕對路徑,所以請依定要確保它存在public資料夾
2.<img src="../../images/abigail.png">

Vite其他功能

Vite還有很多靜態資源的處理,不過在打包時才會碰到,先記錄起來:

  1. SVG優化
  2. 圖片壓縮
    如何在Vite项目中处理静态资源

以上!

不知不覺來到1/3...這次比前兩年都吃力QQ...自己加加油!!


上一篇
Laravel: 初探 Router, view & blade-Day09
下一篇
你的網站排了多少碳!?網站也可以很環保!-Day11
系列文
前輩說Laravel不難,好啊那就1人前後端試試看啊31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言